package com.iamteer.f_i18n;

import java.text.DateFormat;
import java.text.NumberFormat;
import java.util.Date;
import java.util.Locale;
import java.util.ResourceBundle;

import org.junit.Test;


public class App {
	// 国际化 - 静态文本
	public void testU18N() throws Exception{
		Locale locale = Locale.US;
		// 创建工具类对象 ResourceBundle
		ResourceBundle bundle = ResourceBundle.getBundle("com.iamteer.f_i18n.msg", locale);
		
		System.out.println(bundle.getString("hello"));
		System.out.println(bundle.getString("username"));
		System.out.println(bundle.getString("pwd"));
	}
	
	// 国际化 - 动态文本
	public void testU18N_2() throws Exception {
		// 模拟语言环境
		Locale locale = Locale.US;
		
		// 1. 国际化货币
		// 1.1 准备数据
		double number = 100;
		// 1.2 使用工具类
		NumberFormat nf = NumberFormat.getCurrencyInstance(locale);
		String format = nf.format(number);
		System.out.println(format);
		
		// 1.3 练习：代码计算： $100 * 10
		String string = "$100";
		int num = 10;
		NumberFormat nf1 = NumberFormat.getCurrencyInstance(Locale.US);
		Number money = nf1.parse(string);
		System.out.println(money.intValue() * num);
	}
	
	// 国际化 - 动态文本
	public void testU18N_3() throws Exception {
		// 模拟语言环境
		Locale locale = Locale. CHINA;
		
		// 1. 国际化数值
		NumberFormat nf = NumberFormat.getNumberInstance(locale);
		String format = nf.format(1000000);
		System.out.println(format);
	}
	
	// 国际化 - 动态文本
	public void testU18N_4() throws Exception {
		// 模拟语言环境
		Locale locale = Locale. CHINA;
		
		// 1. 国际化百分比
		NumberFormat nf = NumberFormat.getPercentInstance(locale);
		String format = nf.format(0.1);
		System.out.println(format);
	}
	
	// 国际化 - 动态文本
	/**
	 * 日期
	 * 	FULL	2017年2月9日 星期四
	 * 	LONG	2017年2月9日
	 * 	MEDIUM	2017-2-9
	 * 	SHORT	17-2-9
	 * 
	 * 时间
	 * 	FULL	下午05时42分30秒 CST
	 * 	LONG	下午05时43分55秒
	 * 	MEDIUM	17:44:05
	 * 	SHORT	下午5:44
	 * @throws Exception
	 */
	@Test
	public void testU18N_5() throws Exception {
		// 日期格式
		int dateStyle = DateFormat.LONG;
		int timeStyle = DateFormat.SHORT;
		
		// 1. 国际化日期
		DateFormat df = DateFormat.getDateTimeInstance(dateStyle, timeStyle, Locale.CHINA);
		String date = df.format(new Date());
		System.out.println(date);
	}
}
